﻿using System;
using System.Collections.Generic;
using System.Text;

namespace gChartSharp
{
    public class LineChart : ChartBase
    {
        /// <summary>
        /// 
        /// </summary>
        public override ChartType ChartType { get { return ChartType.LineChart; } }


        #region Member Variables
        private ColorParam mColors;
        private SolidFillParam mSolidFill;
        private DataScaleParam mDataScale;
        private LinearGradientFillParam mLinearGradientFill;
        private LinearStripesFillParam mLinearStripesFill;
        private TitleParam mTitle;
        private LegendParam mLegend;
        private GridLinesParam mGridLines;
        private ShapeMarkerParam mShapeMarker;
        private RangeMarkerParam mRangeMarker;
        private LineStyleParam mLineStyle;
        private FillAreaParam mFillArea;
        #endregion


        #region Properties
        public ColorParam Colors
        {
            get { return mColors ?? (mColors = new ColorParam()); }
            set { mColors = value; }
        }


        public SolidFillParam SolidFill
        {
            get { return mSolidFill ?? (mSolidFill = new SolidFillParam()); }
            set { mSolidFill = value; }
        }


        public DataScaleParam DataScale
        {
            get { return mDataScale ?? (mDataScale = new DataScaleParam()); }
            set { mDataScale = value; }
        }


        public LinearGradientFillParam LinearGradientFill
        {
            get { return mLinearGradientFill ?? (mLinearGradientFill = new LinearGradientFillParam()); }
            set { mLinearGradientFill = value; }
        }


        public LinearStripesFillParam LinearStripesFill
        {
            get { return mLinearStripesFill ?? (mLinearStripesFill = new LinearStripesFillParam()); }
            set { mLinearStripesFill = value; }
        }


        public TitleParam Title
        {
            get { return mTitle ?? (mTitle = new TitleParam()); }
            set { mTitle = value; }
        }


        public LegendParam Legend
        {
            get { return mLegend ?? (mLegend = new LegendParam()); }
            set { mLegend = value; }
        }


        public GridLinesParam GridLines
        {
            get { return mGridLines ?? (mGridLines = new GridLinesParam()); }
            set { mGridLines = value; }
        }


        public ShapeMarkerParam ShapeMarkers
        {
            get { return mShapeMarker ?? (mShapeMarker = new ShapeMarkerParam()); }
            set { mShapeMarker = value; }
        }


        public RangeMarkerParam RangeMarkers
        {
            get { return mRangeMarker ?? (mRangeMarker = new RangeMarkerParam()); }
            set { mRangeMarker = value; }
        }


        public LineStyleParam LineStyles
        {
            get { return mLineStyle ?? (mLineStyle = new LineStyleParam()); }
            set { mLineStyle = value; }
        }


        public FillAreaParam FillArea
        {
            get { return mFillArea ?? (mFillArea = new FillAreaParam()); }
            set { mFillArea = value; }
        }
        #endregion


        public LineChart(int width, int height, EncodingType encType, float[] dataSets)
            : base(width, height, encType, dataSets)
        { }
    }
}
